﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComunesMGI.DataTypes;


namespace MGI.Logica
{
    class CtrClientesSistemas : IClientesSistemas
    {
        #region IClientesSistemas Members

        public List<DataCliente> GetClientes()
        {
            MgrClientes mgrClientes = MgrClientes.GetInstance();
            return mgrClientes.GetClientes();
        }

        public List<DataSistema> GetSistemas(int cliCod)
        {
            MgrSistemas mgrSistemas = MgrSistemas.GetInstance();
            return mgrSistemas.GetSistemas(cliCod);
        }

        public int AddCliente(DataCliente cli)
        {
            MgrClientes mgrClientes = MgrClientes.GetInstance();
            return mgrClientes.AddCliente(cli);
        }

        public void BajaCliente(int cliCod)
        {
            MgrClientes mgrClientes = MgrClientes.GetInstance();
            mgrClientes.BajaCliente(cliCod);
        }

        public void ModificarCliente(DataCliente cli) 
        {
            MgrClientes mgrClientes = MgrClientes.GetInstance();
            mgrClientes.ModificarCliente(cli);
        }

        public void AddSistema(DataSistema sistema) 
        {
           MgrSistemas mgrSistemas = MgrSistemas.GetInstance();
           try
           {
               mgrSistemas.ChkUrlWS(sistema.UrlWS);
           }
           catch (Exception e)
           {
               throw new Exception("No existe url del WS o está bajo el servicio: " + e.Message);   
           }
           try
           {
               mgrSistemas.ChkSitioSistema( sistema.Sitio, sistema.UrlWS);
           }
           catch (Exception e)
           {
               throw new Exception("No existe el sitio del sistema o está bajo el servicio: " + e.Message);
           } 
           mgrSistemas.AddSistema(sistema); 
        }

       
        public void ModificarSistema(DataSistema sistema)
        {
            MgrSistemas mgrSistemas = MgrSistemas.GetInstance();
            try
            {
                mgrSistemas.ChkUrlWS(sistema.UrlWS);
            }
            catch (Exception e)
            {
                throw new Exception("No existe url del WS o está bajo el servicio: " + e.Message);
            }
            try
            {
                mgrSistemas.ChkSitioSistema(sistema.Sitio, sistema.UrlWS);
            }
            catch (Exception e)
            {
                throw new Exception("No existe el sitio del sistema o está bajo el servicio: " + e.Message);
            } 
            mgrSistemas.ModificarSistema(sistema);
        }

        public void BajaSistema(int sisCod)
        {
            MgrSistemas mgrSistemas = MgrSistemas.GetInstance();
            mgrSistemas.BajaSistema(sisCod);
        }

        #endregion
    }
}
